A high speed networking chip typically performs a sequence of flow table lookups in order to route any input packet to its final destination. As shown in FIG. 1A, each flow table has a dedicated memory that holds table specific key/value pairs, and each table performs a lookup using a fixed lookup key. For a layer 2 (L2) bridging table, the lookup key is typically a virtual local area network and a media access control destination address {VLAN, MAC_DA} for a classical L2 network, or {Virtual network ID, MAC_DA} for a virtualized L2 network. For a layer 3 (L3) host routing table, the lookup key is typically {IPv4_DA} or {IPv6_DA}. For multiprotocol label switching (MPLS), the lookup key is an MPLS label. For a layer 4 (L4) service routing table, the lookup key is typically {IPv4_SA, IPv4_DA, IP_protocol, source_port, dest_port} for IPv4 transport, or {IPv6_SA, IPv6_DA, IP_protocol, source_port, dest_port} for IPv6 transport.
The flow table is fixed to a specific network protocol due to its fixed lookup key construction. Additionally, the lookup key sizes for different flow tables can vary greatly. For example, an L2 {VLAN,DA} lookup key is 8 bytes, an IPv4 5-tuple lookup key is 13 bytes, and an IPv6 5-tuple lookup key is 37 bytes.
Current network interface controller (NIC) implementations either deliver all packets to one place, for software to decode, or have wired-in restricted hardware routing for perhaps four different sequences of headers: {Link, IPv4, TCP}; {Link, IPv4, UDP}; {Link, IPv6, TCP}; {Link, IPv6, UDP}. All other packets are routed to one place for software (or NIC firmware) to decode. None of the software-based results can be routed at anything near line rate, and typically slowed by a factor of 10. A user of such chips cannot have a much-different distribution of packets, such as 100% IPv6/UDP, without overflowing one small dedicated routing table and under-utilizing all the others. An overflowed table means packets for all connections whose routing doesn't fit go to software and suffer a significant slowdown.